import 'package:dartkit/dartkit.dart';
import 'package:test/test.dart';

void main() {
  test("获取一周日期的测试", () {
    Iterable<Date> dates = Week(2020, 1).dates;
    expect(dates.length, 7);
    expect(dates.first, Date(2019, 12, 30));
    expect(dates.last, Date(2020, 1, 5));
  });

  test("获取月份测试", () {
    // 单月份周，比如2020年第4周只属于1月
    expect(Week(2020, 4).months, [1]);
    // 跨月周，比如2020年第5周横跨1、2月
    expect(Week(2020, 5).months, [1, 2]);
  });

  test("运算测试", () {
    // 2021年1月在iso 8601标准上为上一年的53周
    // 但是以我自己的标准，属于今年的第一周，因此这一年有53周
    // 因此在第一周的基础上加52周为2021年的第53周
    expect(Week(2021, 1) + 52, Week(2021, 53));
    // 2021年的52周加1周后，已经涉及到了2022年的第一周
    expect(Week(2021, 52) + 1, Week(2022, 1));
    // 2021年的最后一天和2022年的第一天在周数上有重叠，因此如果添加一周，则会直接加到第二周
    expect(Week(2021, 53) + 1, Week(2022, 2));
    // 反之同理
    expect(Week(2022, 1) - 1, Week(2021, 52));
  });
}
